package com.iceclean.dao;

import com.iceclean.po.PostComment;

import java.util.List;

/**
 * @author : Ice'Clean
 * @date : 2021-05-09
 *
 * 贴子回复表的操作接口
 */
public interface PostCommentDao {

    /**
     * 通过回复 id 寻找回复
     * @param commentId 回复 id
     * @return 对应回复实体
     */
    PostComment findPostCommentById(int commentId);

    /**
     * 找到根回复的所有子回复
     * @param rootCommentId 根回复 id
     * @return 符合条件的子回复集合
     */
    List<PostComment> findPostCommentByRoot(int rootCommentId);

    /**
     * 按页数查询指定贴子的回复
     * @param postId 指定贴子 id
     * @param page 页数
     * @param num 每页的数量
     * @return 符合条件的回复
     */
    List<PostComment> findPostCommentByPage(int postId, int page, int num);

    /**
     * 这里传入了根回复 id，获取的是该回复的子回复
     * 按页数查询指定贴子、指定回复的子回复
     * @param postId 指定贴子 id
     * @param rootCommentId 指定的根回复 id
     * @param page 页数
     * @param num 每页的数量
     * @return 符合条件的回复
     */
    List<PostComment> findPostCommentByPage(int postId, int rootCommentId, int page, int num);

    /**
     * 创建新贴子回复
     * @param postComment 贴子回复实体
     * @return 新贴子回复的 id
     */
    int createPostComment(PostComment postComment);

    /**
     * 更新回复数据
     * @param postComment 已经更新完数据的回复
     * @return 是否更新成功
     */
    boolean updatePostComment(PostComment postComment);

    /**
     * 删除贴子回复
     * @param postCommentId 需要删除的贴子回复 id
     * @return 是否删除成功
     */
    boolean deletePostComment(int postCommentId);
}
